# 函数定义
def counter(param1=0):  # param1 作为参数，并给了一个默认值。当没有传入参数时，直接使用设置的默认值。一般使用None做为默认值
    cnt = [param1]

    def add_one():
        cnt[0] += 1
        return cnt[0]

    return add_one  # 返回一个函数


num = counter()  # 创建一个新的函数并赋值给num。cnt对于num函数来讲，成为一个全局变量
num10 = counter(10)

print("第1次调用counter：", counter())
print("第2次调用counter：", counter())

print("第1次调用num：", num())
print("第2次调用num：", num())
print("第3次调用num：", num())  # cnt[0] 值会一直累加

print("第1次调用num10：", num10())
print("第2次调用num10：", num10())
